/* 
 * File:   ipd_smoothing_spatial_filter.h
 * Author: dima
 *
 * Created on 25 января 2015 г., 14:44
 */

#ifndef IPD_SMOOTHING_SPATIAL_FILTER_H
#define	IPD_SMOOTHING_SPATIAL_FILTER_H
#include "ipd_filter.h"
namespace ipd
{

enum tp_smoothing_spatial_filter
{
    averaging_filter,
    weighted_average
};

class ipd_smoothing_spatial_filter : public ipd_filter
{
public:
    ipd_smoothing_spatial_filter(ipd_img &img);
    virtual ~ipd_smoothing_spatial_filter();
    void init(int sz,tp_smoothing_spatial_filter tp_filter = averaging_filter); //object initialization
private:
    int size;//size of the mask
    int *maska;// mask
    void create_maska();// create maska
    void delete_maska();// delete maska
    void create_weighted_average_mask();//create weighted average mask
    void create_averaging_filter_mask();//create averaging filter mask
    ipd_smoothing_spatial_filter(const ipd_smoothing_spatial_filter& orig);

};
}
#endif	/* IPD_SMOOTHING_SPATIAL_FILTER_H */

